# 装饰器

import functools


# 装饰器
def auth0(func):
    print("auth0")

    @functools.wraps(func)
    def inner(*args, **kwargs):
        return func(*args, **kwargs)

    return inner


def auth1(func):
    print("auth1")

    @functools.wraps(func)
    def inner(*args, **kwargs):
        return func(*args, **kwargs)

    return inner


# @auth0
# def login():
#     pass

# # 由于@functools.wraps(func)，login.__name__为login
# # 没有@functools.wraps(func)，login.__name__为inner
# print(login.__name__)


# 优先执行距离函数最近的装饰器
# 因此，先执行auth1，后执行auth0
@auth0
@auth1
def index():
    print("index")


# # 由于@functools.wraps(func)，login.__name__为login
# # 没有@functools.wraps(func)，login.__name__为inner
# print(login.__name__)
# print(index.__name__)


"""

@app.route("/index")  # endpoint默认等于函数名，即index
def index():
    pass

"""
